package com.zz.ecommerce.pojo;

import com.zz.bundles.cache.dict.DictTag;
import com.zz.ecommerce.common.constants.DictConstants;
import com.zz.ecommerce.utils.SqlType;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 清单详情(正式)
 */
public class CbecElistItem implements Serializable {
    private static final long serialVersionUID = 29430678500250180L;

    /**
     * 唯一主键
     */
    private String id;

    /**
     * 清单ID
     */
    private String elistId;

    /**
     * 序号
     */
    private String gNum;

    /**
     * 账册备案料号 保税模式必填
     */
    private String itemRecordNo;

    /**
     * 企业商品货号
     */
    private String itemNo;

    /**
     * 企业商品品名
     */
    private String itemName;

    /**
     * 商品编码
     */
    private String hSCode;

    /**
     * 商品名称
     */
    private String gName;

    /**
     * 商品规格型号
     */
    private String gModel;

    /**
     * 条码
     */
    private String barCode;

    /**
     * 原产国（地区）
     */
    private String country;

    /**
     * 数量
     */
    private BigDecimal qty;

    /**
     * 计量单位
     */
    private String unit;

    /**
     * 法定数量
     */
    private BigDecimal qty1;

    /**
     * 法定计量单位
     */
    private String unit1;

    /**
     * 第二数量
     */
    private BigDecimal qty2;

    /**
     * 第二计量单位
     */
    private String unit2;

    /**
     * 币制
     */
    private String currency;

    /**
     * 单价
     */
    private BigDecimal price;

    /**
     * 总价
     */
    private BigDecimal totalPrice;

    /**
     * 备注
     */
    private String note;

    /**
     * 关税率
     */
    private BigDecimal customsRate;

    /**
     * 应征关税
     */
    private BigDecimal customsDuty;

    /**
     * 增值税率
     */
    private BigDecimal valueAddedRate;

    /**
     * 应征增值税
     */
    private BigDecimal valueAddedTax;

    /**
     * 消费税率
     */
    private BigDecimal consumptionRate;

    /**
     * 应征消费税
     */
    private BigDecimal consumptionTax;

    /**
     * 行邮税则号（备用）
     */
    private String postTaxCode;

    /**
     * 行邮税率（备用）
     */
    private BigDecimal postTaxRate;

    /**
     * 行邮税额（备用）
     */
    private BigDecimal postTax;

    /**
     * 税款总额
     */
    private BigDecimal totalTax;

    /**
     * 完税价格
     */
    private BigDecimal tradeTotal;

    /**
     * 创建时间
     */
    @SqlType(type = "date", format = "yyyy-mm-dd hh24:mi:ss")
    private String createDate;

    /**
     * 直属关区代码，申报口岸代码前两位+00
     */
    private String districtCustoms;

    /**
     * @return 唯一主键
     */
    public String getId() {
        return id;
    }

    /**
     * @param id 唯一主键
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * @return 清单ID
     */
    public String getElistId() {
        return elistId;
    }

    /**
     * @param elistId 清单ID
     */
    public void setElistId(String elistId) {
        this.elistId = elistId;
    }

    /**
     * @return 序号
     */
    public String getgNum() {
        return gNum;
    }

    /**
     * @param gNum 序号
     */
    public void setgNum(String gNum) {
        this.gNum = gNum;
    }

    /**
     * @return 账册备案料号 保税模式必填
     */
    public String getItemRecordNo() {
        return itemRecordNo;
    }

    /**
     * @param itemRecordNo 账册备案料号 保税模式必填
     */
    public void setItemRecordNo(String itemRecordNo) {
        this.itemRecordNo = itemRecordNo;
    }

    /**
     * @return 企业商品货号
     */
    public String getItemNo() {
        return itemNo;
    }

    /**
     * @param itemNo 企业商品货号
     */
    public void setItemNo(String itemNo) {
        this.itemNo = itemNo;
    }

    /**
     * @return 企业商品品名
     */
    public String getItemName() {
        return itemName;
    }

    /**
     * @param itemName 企业商品品名
     */
    public void setItemName(String itemName) {
        this.itemName = itemName;
    }

    /**
     * @return 商品编码
     */
    public String gethSCode() {
        return hSCode;
    }

    /**
     * @param hSCode 商品编码
     */
    public void sethSCode(String hSCode) {
        this.hSCode = hSCode;
    }

    /**
     * @return 商品名称
     */
    public String getgName() {
        return gName;
    }

    /**
     * @param gName 商品名称
     */
    public void setgName(String gName) {
        this.gName = gName;
    }

    /**
     * @return 商品规格型号
     */
    public String getgModel() {
        return gModel;
    }

    /**
     * @param gModel 商品规格型号
     */
    public void setgModel(String gModel) {
        this.gModel = gModel;
    }

    /**
     * @return 条码
     */
    public String getBarCode() {
        return barCode;
    }

    /**
     * @param barCode 条码
     */
    public void setBarCode(String barCode) {
        this.barCode = barCode;
    }

    /**
     * @return 原产国（地区）
     */
    public String getCountry() {
        return country;
    }

    /**
     * @param country 原产国（地区）
     */
    public void setCountry(String country) {
        this.country = country;
    }

    /**
     * @return 数量
     */
    public BigDecimal getQty() {
        return qty;
    }

    /**
     * @param qty 数量
     */
    public void setQty(BigDecimal qty) {
        this.qty = qty;
    }

    /**
     * @return 计量单位
     */
    public String getUnit() {
        return unit;
    }

    public String getUnitDisplay() {
        return DictTag.getCargoParamVal(DictConstants.S_NUM_UNIT_E, unit, "CODE_C", "NAME_C");
    }

    /**
     * @param unit 计量单位
     */
    public void setUnit(String unit) {
        this.unit = unit;
    }

    /**
     * @return 法定数量
     */
    public BigDecimal getQty1() {
        return qty1;
    }

    public String getQty1Display() {
        return DictTag.getCargoParamVal(DictConstants.S_NUM_UNIT_E, String.valueOf(qty1), "CODE_C", "NAME_C");
    }

    /**
     * @param qty1 法定数量
     */
    public void setQty1(BigDecimal qty1) {
        this.qty1 = qty1;
    }

    /**
     * @return 法定计量单位
     */
    public String getUnit1() {
        return unit1;
    }

    public String getUnit1Display() {
        return DictTag.getCargoParamVal(DictConstants.S_NUM_UNIT_E, unit1, "CODE_C", "NAME_C");
    }

    /**
     * @param unit1 法定计量单位
     */
    public void setUnit1(String unit1) {
        this.unit1 = unit1;
    }

    /**
     * @return 第二数量
     */
    public BigDecimal getQty2() {
        return qty2;
    }

    /**
     * @param qty2 第二数量
     */
    public void setQty2(BigDecimal qty2) {
        this.qty2 = qty2;
    }

    /**
     * @return 第二计量单位
     */
    public String getUnit2() {
        return unit2;
    }

    public String getUnit2Display() {
        return DictTag.getCargoParamVal(DictConstants.S_NUM_UNIT_E, unit2, "CODE_C", "NAME_C");
    }

    /**
     * @param unit2 第二计量单位
     */
    public void setUnit2(String unit2) {
        this.unit2 = unit2;
    }

    /**
     * @return 币制
     */
    public String getCurrency() {
        return currency;
    }

    public String getCurrencyDisplay() {
        return DictTag.getCargoParamVal(DictConstants.S_CURRENCY_E,currency,"CODE_C","NAME_C");
    }

    /**
     * @param currency 币制
     */
    public void setCurrency(String currency) {
        this.currency = currency;
    }

    /**
     * @return 单价
     */
    public BigDecimal getPrice() {
        return price;
    }

    /**
     * @param price 单价
     */
    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    /**
     * @return 总价
     */
    public BigDecimal getTotalPrice() {
        return totalPrice;
    }

    /**
     * @param totalPrice 总价
     */
    public void setTotalPrice(BigDecimal totalPrice) {
        this.totalPrice = totalPrice;
    }

    /**
     * @return 备注
     */
    public String getNote() {
        return note;
    }

    /**
     * @param note 备注
     */
    public void setNote(String note) {
        this.note = note;
    }

    /**
     * @return 关税率
     */
    public BigDecimal getCustomsRate() {
        return customsRate;
    }

    /**
     * @param customsRate 关税率
     */
    public void setCustomsRate(BigDecimal customsRate) {
        this.customsRate = customsRate;
    }

    /**
     * @return 应征关税
     */
    public BigDecimal getCustomsDuty() {
        return customsDuty;
    }

    /**
     * @param customsDuty 应征关税
     */
    public void setCustomsDuty(BigDecimal customsDuty) {
        this.customsDuty = customsDuty;
    }

    /**
     * @return 增值税率
     */
    public BigDecimal getValueAddedRate() {
        return valueAddedRate;
    }

    /**
     * @param valueAddedRate 增值税率
     */
    public void setValueAddedRate(BigDecimal valueAddedRate) {
        this.valueAddedRate = valueAddedRate;
    }

    /**
     * @return 应征增值税
     */
    public BigDecimal getValueAddedTax() {
        return valueAddedTax;
    }

    /**
     * @param valueAddedTax 应征增值税
     */
    public void setValueAddedTax(BigDecimal valueAddedTax) {
        this.valueAddedTax = valueAddedTax;
    }

    /**
     * @return 消费税率
     */
    public BigDecimal getConsumptionRate() {
        return consumptionRate;
    }

    /**
     * @param consumptionRate 消费税率
     */
    public void setConsumptionRate(BigDecimal consumptionRate) {
        this.consumptionRate = consumptionRate;
    }

    /**
     * @return 应征消费税
     */
    public BigDecimal getConsumptionTax() {
        return consumptionTax;
    }

    /**
     * @param consumptionTax 应征消费税
     */
    public void setConsumptionTax(BigDecimal consumptionTax) {
        this.consumptionTax = consumptionTax;
    }

    /**
     * @return 行邮税则号（备用）
     */
    public String getPostTaxCode() {
        return postTaxCode;
    }

    /**
     * @param postTaxCode 行邮税则号（备用）
     */
    public void setPostTaxCode(String postTaxCode) {
        this.postTaxCode = postTaxCode;
    }

    /**
     * @return 行邮税率（备用）
     */
    public BigDecimal getPostTaxRate() {
        return postTaxRate;
    }

    /**
     * @param postTaxRate 行邮税率（备用）
     */
    public void setPostTaxRate(BigDecimal postTaxRate) {
        this.postTaxRate = postTaxRate;
    }

    /**
     * @return 行邮税额（备用）
     */
    public BigDecimal getPostTax() {
        return postTax;
    }

    /**
     * @param postTax 行邮税额（备用）
     */
    public void setPostTax(BigDecimal postTax) {
        this.postTax = postTax;
    }

    /**
     * @return 税款总额
     */
    public BigDecimal getTotalTax() {
        return totalTax;
    }

    /**
     * @param totalTax 税款总额
     */
    public void setTotalTax(BigDecimal totalTax) {
        this.totalTax = totalTax;
    }

    /**
     * @return 完税价格
     */
    public BigDecimal getTradeTotal() {
        return tradeTotal;
    }

    /**
     * @param tradeTotal 完税价格
     */
    public void setTradeTotal(BigDecimal tradeTotal) {
        this.tradeTotal = tradeTotal;
    }

    /**
     * @return 创建时间
     */
    public String getCreateDate() {
        return createDate;
    }

    /**
     * @param createDate 创建时间
     */
    public void setCreateDate(String createDate) {
        this.createDate = createDate;
    }

    /**
     * @return 直属关区代码，申报口岸代码前两位+00
     */
    public String getDistrictCustoms() {
        return districtCustoms;
    }

    /**
     * @param districtCustoms 直属关区代码，申报口岸代码前两位+00
     */
    public void setDistrictCustoms(String districtCustoms) {
        this.districtCustoms = districtCustoms;
    }
}